package com.code.learn.Ipersistance.sqlSession;

import java.util.List;

/**
 * 所有的jdbc外包装层
 * 注意各个方法的返回类型以及参数
 */
public interface SqlSession {
    <E>  List<E> selectList(String statementId, Object... params) throws Exception;

    /**
     * 注意：这里的返回值，最好不用Object
     * @param statementId
     * @param params
     * @param <T>
     * @return
     * @throws Exception
     */
    <T> T selectOne(String statementId, Object... params) throws Exception;

    /**
     * 注意：参数是Class，但当前是未知的
     * 为Dao层生成代理实现类
     * @param mapperClass
     * @param <T>
     * @return
     */
    <T> T  getMapper(Class<?> mapperClass);
}
